Rsync tips og beste praksis
Kapittel 11
Rsync er et kraftig verktøy, men for å bruke det trygt og effektivt bør du kjenne til noen praktiske erfaringer og begrensninger. Dette kapittelet samler nyttige anbefalinger og observasjoner som gjør store og gjentatte Rsync-jobber mer pålitelige.
Kjør store jobber i tmux
Når du starter store Rsync-jobber manuelt, bør du kjøre dem i tmux eller screen. Da fortsetter overføringen selv om du mister SSH-tilkoblingen eller terminalen lukkes.
Eksempel:
tmux
rsync -avhP /source /backup
Koble fra tmux med Ctrl + B etterfulgt av D. Koble til igjen med tmux attach.
Metadata og ulike filsystemer
Når du overfører mellom ulike filsystemer (f.eks. ext4 → exFAT eller Linux → Windows/NTFS), kan ikke alle metadata bevares. Eierskap, rettigheter, tidsstempler og spesialfiler håndteres forskjellig.
Hvis du får feil om rettigheter, bruk for eksempel:
rsync -avhP --no-perms /source /mnt/usbdrive
Dette kopierer filer uten å forsøke å skrive POSIX-rettigheter.
Se alltid etter feilmeldinger
Rsync fortsetter normalt selv om enkelte filer feiler underveis. Derfor bør du kontrollere logg eller output etter kjøring.
Tips:
--log-file=filLagre alt som logg--verboseVis mer detaljer--dry-runTest uten å endre noe
Komprimerte eller krypterte filer
Komprimerte og krypterte filer endrer seg kraftig selv ved små innholdsendringer. Da må Rsync ofte sende hele filen på nytt, fordi “delta-transfer” ikke får gjenbrukt eksisterende blokker.
Vurder å:
- bruke inkrementelle arkiver (tar --listed-incremental)
- komprimere etter overføring
- kun komprimere eldre backuper
Omdøpte mapper og filer
Rsync har ikke ekte “rename-deteksjon”. Når en mappe får nytt navn på kilden, oppfører Rsync seg slik:
-
Uten --delete Rsync ser den nye mappen som ny, og lar den gamle stå igjen på destinasjonen. Resultatet er duplisering – begge mappene eksisterer etter kjøring.
-
Med --delete Rsync oppdager at den gamle mappen mangler på kilden og sletter den på destinasjonen etter overføringen. Den nye mappen kopieres deretter som vanlig. Dette gir riktig sluttresultat, men filene sendes på nytt fordi Rsync ikke forstår at de er “flyttet”.
-
Ingen ren “flytt-deteksjon” Rsync sletter og kopierer på nytt i stedet for å flytte. Dette er trygt, men kan være tregt ved store datasett.
-
Delvis optimalisering
--fuzzyForsøker å gjenbruke lignende filer for å redusere datamengde (fungerer hovedsakelig på filer, ikke mapper).--link-destKan brukes ved snapshot-backuper slik at identiske filer hardlinkes i stedet for å kopieres på nytt.
Praktisk tips: Hvis du vet at en mappe kun har fått nytt navn, kan du manuelt omdøpe den på destinasjonen før du kjører rsync. Da slipper Rsync å overføre innholdet igjen.
Ting rsync ikke gjør
-
Rsync utfører ikke toveis synkronisering eller “change reconciliation”. Kilden er alltid “fasit”, og endringer på destinasjonen overskrives uten varsling. Vil du ha toveis synkronisering, bruk Unison eller Syncthing.
-
Rsync utfører ikke deduplisering. Filer med samme innhold lagres flere ganger med forskjellig navn. For deduplisering bruk fdupes, rdfind eller filssystem som ZFS/Btrfs med dedup-funksjon.
Andre nyttige tips
-
Kjør med lav prioritet om systemet skal brukes samtidig:
nice -n 10 rsync -avhP /source /backup -
Komprimer overføringen på trege linjer:
rsync -avzhP user@server:/data ./localdata -
Test alltid med --dry-run før du bruker --delete. Det finnes ingen “undo” i Rsync.
Høydepunkter – rsync tips
- Kjør store jobber i tmux for å unngå avbrudd
- Sjekk metadata ved ulike filsystemer
- Loggfør og les feilmeldinger
- Unngå komprimerte filer hvis du vil utnytte delta-overføring
- Rsync er enveis, ikke toveis
- Rsync oppdager ikke flyttede mapper → bruk --delete for å fjerne gamle mapper → bruk --fuzzy eller --link-dest for å redusere ny kopiering
- Rsync har ingen deduplisering
- Kjør test (--dry-run) før store operasjoner
